import fs from "fs";
import path from "path";

const folderPath = "./plugins/modules";
const modules = {};

// 读取文件夹中的所有文件
const fileList = fs.readdirSync(folderPath);

export default await (async () => {
  for (let index = 0; index < fileList.length; index++) {
    const filePath = `${folderPath}/${fileList[index]}`;
    const fileName = path.basename(filePath, ".js");
    // 处理导出模块内容名称, 驼峰形式
    const moduleName = fileName
      .split("-")
      .map((word, index) => {
        return index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1);
      })
      .join("");
    // 动态导入文件
    const module = await import(filePath);
    // 存储默认导出(如果没有默认导出，则直接使用模块对象)
    modules[moduleName] = module.default || module;
  }
  return modules;
})();
